//请实现一个函数，把字符串 s 中的每个空格替换成"%20"。 
//
// 
//
// 示例 1： 
//
// 输入：s = "We are happy."
//输出："We%20are%20happy." 
//
// 
//
// 限制： 
//
// 0 <= s 的长度 <= 10000 
// Related Topics 字符串 
// 👍 146 👎 0


package leetcode.editor.cn1;

//Java：替换空格

/**
 * 请实现一个函数，把字符串 s 中的每个空格替换成"%20"。
 * 输入：s = "We are happy."
 * 输出："We%20are%20happy."
 * 解题思路：
 * 1、计算原字符串右多少个空格
 * 2、构建一个数组，长度为n + 2*k
 */
public class TiHuanKongGeLcof {
    public static void main(String[] args) {
        Solution solution = new TiHuanKongGeLcof().new Solution();
        // TO TEST
        System.out.println(solution.replaceSpace("We are happy."));
    }

    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        public String replaceSpace(String s) {
            int spaceLen = spaceLen(s);
            char[] target = new char[s.length() + 2 * spaceLen];
            int slen = s.length(), j = 0;
            for (int i = 0; i < slen; i++) {
                if (s.charAt(i) != ' ') {
                    target[j++] = s.charAt(i);
                } else {
                    target[j++] = '%';
                    target[j++] = '2';
                    target[j++] = '0';
                }
            }

            return new String(target);
        }

        /**
         * 返回空格的长度
         *
         * @param s
         * @return
         */
        public int spaceLen(String s) {
            int len = 0;
            int slen = s.length();
            for (int i = 0; i < slen; i++) {
                if (s.charAt(i) == ' ') {
                    len++;
                }
            }
            return len;
        }

    }
    //leetcode submit region end(Prohibit modification and deletion)

}
